//
//  test.c
//  随机链表的复制
//
//  Created by 仲7 on 2024/11/26.
//
#include"test.h"
//手动定义一个链表
ListNode* ListCreate(void)
{
    //申请一个结点空间大小的动态空间
    ListNode* node1 = (ListNode*)malloc(sizeof(ListNode));
    //然后直接插入数据
    node1->val = 1;
    // 多创建一个结点并插入数据
    ListNode* node2 = (ListNode*)malloc(sizeof(ListNode));
    ListNode* node3 = (ListNode*)malloc(sizeof(ListNode));
    ListNode* node4 = (ListNode*)malloc(sizeof(ListNode));
    node2->val = 2;
    node3->val = 3;
    node4->val = 4;
    //在把结点连接起来，就构成了一个简单的单链表
    node1->next = node2;
    node2->next = node3;
    node3->next = node4;
    node4->next = NULL;
    //
    node1->random = node4;
    node2->random = node3;
    node3->random = node1;
    node4->random = node2;
    //创建一个头结点指针指向头结点
    ListNode* plist = node1;
    return plist;
}
int main(int argc, const char * argv[])
{
    ListNode* phead = ListCreate();
    ListPrint(phead);
    //struct Node* newNode = copyRandomList(phead);
    //ListPrint(newNode);
    return 0;
}

